طراحی دیتا مدل های سندگرا و توسعه نرم افزارهای سندگرا
دیتابیس مونگو یک پایگاه داده قوی, منعطف و مقیاس پذیر است. این پایگاه داده توانایی out scale کردن و خیلی از ویژگی های پایگاه داده های رابطه ای مثل ایندکس گذاری و دامنه ی پرس و جوها وذخیره سازی را داراست.
دیتابیس مونگو یک پایگاه داده قوی, منعطف و مقیاس پذیر است. این پایگاه داده توانایی out scale کردن و خیلی از ویژگی های پایگاه داده های رابطه ای مثل ایندکس گذاری و دامنه ی پرس و جوها وذخیره سازی را دارا می باشد.
دیتابیس مونگو به طور باور نکردنی پر ویژگی است. خیلی از ویژگی ها مثل built-inبودن پشتیبانی کردن از aggregation MapReduce-style و MapReduce-style aggregationرا دارا می باشد که بعدا در مود هر کدام مطالبی خواهیم آموخت.
دیتابیس مونگو یک مدل داده ای Developer پسند و دارای پیکربندی administrator پسند است.
وهمچنین دارای APIهای زبان های عمومی بوسیله ی Driverها وshell پایگاه داده را دارا می باشد.
mongoDB تلاش می کند که راه شما را به سوی برنامه نویسی بدون نگرانی از مشکل ذخیره داده ها تغییر بدهد.
mongoDB یک پایگاه داده سندگرا است نه یک پایگاه داده رابطه ای. دلیل اصلی برای کنار گذاشتن دیتابیس های رابطه ای توانایی scale out بودن زبان دیتابیس مونگو است اما سایر مزایاهای دیگر را نیز دارد.
ایده پایه در طراحی mongoDB جایگزین کردن مفهوم row با یک مدل انعطاف پذیر تر به نامdocument است سند گرایی امکان ایجاد سندهای داخلی وآرایه ها را به کاربر می دهد و همچنین scheme-less یا همون بدون شما بودن دیتابس را نیز دارا می باشد.
Easy scaling
با توجه به سرعت رشد حجم داده ها و پیشروی در این تکنولوژی وحجم اطلاعاتی که در پایگاه داده نیاز به ذخیره سازی دارند برای اداره کردن این اطلاعات زیاد مدیریت جامعی احساس می شود.
چگونه پایگاه داده خود را مقیاس پذیر کنیم؟
برای مقیاس پذیر کردن پایگاه داده به دو گزینه می رسیم
1-scalling up (بزرگ کردن ماشین ها)
2-scalling out( پارتیشن بندی کردن در بین چندین ماشین)
از آنجایی که ایجاد ماشین بزرگ مقرون به صرفه نیست همچنین نیاز به فضای بزرگتری دارد scalling outکردن توسعه پذیرتر واقتصادی تر است که برای اضافه کردن و بالا بردن کارایی می توان یک سرور مناسب خریداری کرد وبه مجموعه خود اضافه کرد(بعدها در این کتاب به این مجموعه کلاستر نیز گفته می شود.)
دیتابیس مونگو بر پایه scalling out بودن طراحی شده است سندگرا بودن مدل داده ها این اجازه را می دهد که داده ها به طور جداگانه در روی چندین سرور پخش شوند که داده ها و لود کردن یک گروه را به تعادل می رسونه. توزیع مجدد دسته ها اتوماتیک است که این امکان را می دهد که برنامه نویسان بدون نگرانی از ذخیره داده ها روی برنامه نویسی تمرکز کنند و برای افزایش ظرفیت داده ها تنها نیاز به تهیه یک سرور داشته باشند و به آسانی مشکل اینکه چگونه داده ها را ذخیره کنیم حل می شود.
ویژگی ها
مشکل است که ویژگی ها را در mongo چگونه بیان کنیم. در مقایسه با پایگاه داده های رابطه ای یا در مقایسه با دیگر پایگاه داده های سند گرای دیگر؟
خلاصه حرف این است که دیتابیس مونگو واقعا خوب است و ابزارهای منحصر به فردی دارد که دیگر همتاهای رقیبش ندارند. Generic secondary indexes:indexing و پرس وجوهای سریع و یکتایی و قابلیت geospatial indexing را به خوبی پشتیبانی می کند.
انباشته جاوا اسکریپت
به جای ذخیره سازی رویه ها، تولید کننده ها می توانند علاوه بر ذخیره سازی ،از توابع و مقدار ها در سمت سرور استفاده کنند.
اگر چه دیتابیس مونگو خیلی قدرتمند است وسعی در نگه داشتن خیلی از ویژگی های پایگاه داده های رابطه ای را داشته ولی انتخاب خوبی برای انجام هر چیزی که توسط پایگاه داده های رابطه ای انجام می شود نیست.
در هر زمانی ممکن است پردازش به صورت offload و منطقی سمت کلاینت انجام گیرد که این طراحی سبببالا بردن کارایی mongoDB شده است.
مدیریت آسان
تلاش به ساده سازی مدیریت بر اساسدیتابیس مونگو علاوه بر راه اندازی سرور پایگاه داده نیاز به خیلی از مدیریت های ریز داریم اگر یک سرور Master خاموش شود به صورت اتوماتیک یک سرور slave جایگزین سرور Master می شود.
فلسفه مدیریت mongoDB این است که سرور باید اداره شود تا حد امکان وپیکربندی اتوماتیک این اجازه را می دهد که کاربران اتصالتشان را در صورت نیاز بالا ببرند.